package com.zhonghui.modlules.user.eshopVo;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

@ApiModel(
        value = "YxUserBillQueryVo对象",
        description = "用户账单表查询参数"
)
public class UserBillQueryVo implements Serializable {
    private static final long serialVersionUID = 1L;
    @ApiModelProperty("用户账单id")
    private Long id;
    @ApiModelProperty("0 = 支出 1 = 获得")
    private Integer pm;
    @ApiModelProperty("账单标题")
    private String title;
    @ApiModelProperty("明细数字")
    private BigDecimal number;
    @ApiModelProperty("备注")
    private String mark;
    @ApiModelProperty("添加时间")
    @JsonFormat(
            pattern = "yyyy-MM-dd HH:mm:ss",
            timezone = "GMT+8"
    )
    private Date createTime;

    public UserBillQueryVo() {
    }

    public Long getId() {
        return this.id;
    }

    public Integer getPm() {
        return this.pm;
    }

    public String getTitle() {
        return this.title;
    }

    public BigDecimal getNumber() {
        return this.number;
    }

    public String getMark() {
        return this.mark;
    }

    public Date getCreateTime() {
        return this.createTime;
    }

    public void setId(final Long id) {
        this.id = id;
    }

    public void setPm(final Integer pm) {
        this.pm = pm;
    }

    public void setTitle(final String title) {
        this.title = title;
    }

    public void setNumber(final BigDecimal number) {
        this.number = number;
    }

    public void setMark(final String mark) {
        this.mark = mark;
    }

    @JsonFormat(
            pattern = "yyyy-MM-dd HH:mm:ss",
            timezone = "GMT+8"
    )
    public void setCreateTime(final Date createTime) {
        this.createTime = createTime;
    }

    public boolean equals(final Object o) {
        if (o == this) {
            return true;
        } else if (!(o instanceof UserBillQueryVo)) {
            return false;
        } else {
          UserBillQueryVo other = (UserBillQueryVo)o;
            if (!other.canEqual(this)) {
                return false;
            } else {
                Object this$id = this.getId();
                Object other$id = other.getId();
                if (this$id == null) {
                    if (other$id != null) {
                        return false;
                    }
                } else if (!this$id.equals(other$id)) {
                    return false;
                }

                Object this$pm = this.getPm();
                Object other$pm = other.getPm();
                if (this$pm == null) {
                    if (other$pm != null) {
                        return false;
                    }
                } else if (!this$pm.equals(other$pm)) {
                    return false;
                }

                Object this$title = this.getTitle();
                Object other$title = other.getTitle();
                if (this$title == null) {
                    if (other$title != null) {
                        return false;
                    }
                } else if (!this$title.equals(other$title)) {
                    return false;
                }

                label62: {
                    Object this$number = this.getNumber();
                    Object other$number = other.getNumber();
                    if (this$number == null) {
                        if (other$number == null) {
                            break label62;
                        }
                    } else if (this$number.equals(other$number)) {
                        break label62;
                    }

                    return false;
                }

                label55: {
                    Object this$mark = this.getMark();
                    Object other$mark = other.getMark();
                    if (this$mark == null) {
                        if (other$mark == null) {
                            break label55;
                        }
                    } else if (this$mark.equals(other$mark)) {
                        break label55;
                    }

                    return false;
                }

                Object this$createTime = this.getCreateTime();
                Object other$createTime = other.getCreateTime();
                if (this$createTime == null) {
                    if (other$createTime != null) {
                        return false;
                    }
                } else if (!this$createTime.equals(other$createTime)) {
                    return false;
                }

                return true;
            }
        }
    }

    protected boolean canEqual(final Object other) {
        return other instanceof UserBillQueryVo;
    }

    public int hashCode() {
        boolean PRIME = true;
        int result = 1;
        Object $id = this.getId();
         result = result * 59 + ($id == null ? 43 : $id.hashCode());
        Object $pm = this.getPm();
        result = result * 59 + ($pm == null ? 43 : $pm.hashCode());
        Object $title = this.getTitle();
        result = result * 59 + ($title == null ? 43 : $title.hashCode());
        Object $number = this.getNumber();
        result = result * 59 + ($number == null ? 43 : $number.hashCode());
        Object $mark = this.getMark();
        result = result * 59 + ($mark == null ? 43 : $mark.hashCode());
        Object $createTime = this.getCreateTime();
        result = result * 59 + ($createTime == null ? 43 : $createTime.hashCode());
        return result;
    }

    public String toString() {
        return "UserBillQueryVo(id=" + this.getId() + ", pm=" + this.getPm() + ", title=" + this.getTitle() + ", number=" + this.getNumber() + ", mark=" + this.getMark() + ", createTime=" + this.getCreateTime() + ")";
    }
}
